import java.lang.reflect.AnnotatedParameterizedType;
import java.util.Stack;

public class stack {
    public static int calculate(String s) {

        int len = s.length();
        Stack<Integer> stack = new Stack<>();
        char cal = '+';

        for (int i = 0; i < len; i++) {
            char ch = s.charAt(i);
            if (ch != ' ') {//不是空格
                if (ch == '+') {//符号
                    cal = '+';
                } else if (ch == '-') {
                    cal = '-';
                } else if (ch == '*') {
                    cal = '*';
                } else if (ch == '/') {
                    cal = '/';
                } else {//数字

                    //几位数
                    int num = 0;
                    // num = num * 10 + Integer.parseInt(Character.toString(ch));
                    int count = i;
                    while (count < len && s.charAt(count) != '+' && s.charAt(count) != '-' && s.charAt(count) != '*' && s.charAt(count) != '/') {
                        if (s.charAt(count) != ' ') {
                            num = num * 10 + Integer.parseInt(Character.toString(s.charAt(count)));
                        }
                        count++;
                    }
                    i = count - 1;
                    if (cal == '+') {
                        stack.push(num);
                    } else if (cal == '-') {
                        stack.push(num * -1);
                    } else if (cal == '*') {
                        stack.push(stack.pop() * num);
                    } else if (cal == '/') {
                        stack.push(stack.pop() / num);
                    }
                }
            }
        }

        int ret = 0;
        while (!stack.isEmpty()) {
            ret += stack.pop();
        }
        return ret;

//        int len = s.length();
//        Stack<String> stack = new Stack<>();
//        for (int i = 0; i < len; i++) {
//            String ch = s.charAt(i) + "";
//            if (!ch.equals(" ")) {
//                if (ch.equals("+") || ch.equals("-")) {
//                    stack.push(ch);
//                } else if (ch.equals("*") || ch.equals("/")) {
//                    String left = stack.pop() + "";
//                    int count = i + 1;
//                    while (s.charAt(count) == ' ') {
//                        count++;
//                    }
//                    String right = s.charAt(count) + "";
//                    i = count;
//                    if (ch.equals("*")) {
//                        int num = Integer.parseInt(left) * Integer.parseInt(right);
//                        stack.push((char)(num + '0') + "");
//                    } else {
//                        int num = Integer.parseInt(left) / Integer.parseInt(right);
//                        stack.push((char)(num + '0') + "");
//                    }
//                } else {//ch为数字，需判断栈顶的元素是不是数字，数字不一定是一位数
//                    if (stack.isEmpty()) {
//                        stack.push(ch);
//                    } else {
//                        String top = stack.peek();
//                        if (!top.equals("+") && !top.equals("-") && !top.equals("*") && !top.equals("/")) {
//                            StringBuilder temp = new StringBuilder();
//                            temp.append(top);
//                            temp.append(ch);
//                            stack.pop();
//                            stack.push(temp.toString());
//                        } else {
//                            stack.push(ch);
//                        }
//                    }
//                }
//            }
//
//        }
//
//        while (stack.size() != 1) {
//            String right = stack.pop();
//            String cal = stack.pop();
//            String left = stack.pop();
//            if (cal.equals("+")) {
//                int num = Integer.parseInt(left) + Integer.parseInt(right);
//                stack.push((char)(num + '0') + "");
//            } else {
//                int num = Integer.parseInt(left) - Integer.parseInt(right);
//                stack.push((char)(num + '0') + "");
//            }
//        }
//
//        return Integer.parseInt(stack.pop());
    }

    public static void main(String[] args) {
        System.out.println(calculate("3+2*2"));
    }
}
